One feature of a blockchain is that it records each transaction in an open shared ledger. Unfortunately, this is sometimes a problem since each and every aspect of the transactions are recorded on a blockchain and thus the size of the blockchain in memory can become very large. Updating a blockchain is linearly proportional to its size. Thus, for each transaction, if the problem size is O(n) for a ‘n’ length block chain, the problem becomes O(n{circumflex over ( )}2). The size problem can grow based on a quadratic expression representing the size of the block chain. The size becomes enormously long very quickly in a domain of the Internet of Things (IoT) where all transactions occur between different machines. Machines can create transactional events at an enormous speed on the order of 10{circumflex over ( )}6 or more each second, based on the complexity of the system and the number of IoT devices. Since the blockchain is an open ledger that is updated and shared among all IoT devices, the length of the blockchain can adversely impact the performance of an IoT type of system.
Managing the length of a blockchain is a major issue for any implementation and application of blockchains whether it is a permission-less ledger or a needs-permission ledger. The problem is more prevalent to permission-less ledgers where the size is not under strict control.